1. Field of the Invention
The present invention relates to a node, a communication method, and a program for a node, and more particularly, to a node, a communication method, and a program for a node capable of improving the reliability of communication.
2. Description of the Related Art
A backbone network that transfers a large amount of data traffic requires high reliability capable of preventing the interruption of communication even though a link between network nodes (hereinafter, simply referred to as nodes) is disconnected or the node is out of order. In order to meet the requirements, the following techniques have been developed: a link redundancy technique for virtualizing a plurality of links to one link; and a node redundancy technique for virtualizing a plurality of nodes to one node.
When it is necessary to specify a minimum unit serving as a link or a node, the link or the node is referred to as a physical link or a physical node, respectively. That is, the actual links between nodes are referred to as physical links, and the actual nodes installed on the network are referred to as physical nodes. In addition, a plurality of physical links that are virtualized to one link (regarded as one link) by the redundancy technique are referred to as a virtual link. Similarly, a plurality of physical nodes that are virtualized to one node (regarded as one node) by the redundancy technique are referred to as a virtual node. Further, when a link or a node is simply described, it means the physical link or the physical node.
Similarly, a minimum unit, serving as a port, is referred to as a physical port (or simply referred to as a port). That is, ports that are actually provided in the node are referred to as physical ports (or simply referred to as ports). A plurality of ports virtualized to one port (regarded as one port) is referred to as a virtual port.
Non-Patent Document 1 (“IEEE Std 802.3ad Amendment to Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications”, “43. Link Aggregation”, IEEE (Institute of Electrical and Electronics Engineers, Inc), 2000, pp. 95-173) discloses a port redundancy technique called LAG (Link Aggregation). LAG is a port redundancy technique that is applicable to an Ethernet switch (or an Ethernet node) provided in an Ethernet network, which virtualizes a plurality of physical ports provided in the Ethernet switch to one physical port, thereby obtaining port redundancy. “Ethernet” is a registered trademark. Since the port of the Ethernet switch corresponds one-to-one with the link between the Ethernet switches, the LAG can be called a link redundancy technique.
Virtual ports are set by the LAG as follows: a plurality of physical ports provided in the Ethernet switch are classified into the same LAG group, and a port identifier that is not identical to the port identifiers of other physical ports and virtual ports of the Ethernet switch is allocated to the LAG group. Specifically, the virtual ports are set by registering the port identifier of a virtual port corresponding to the group identifier of a LAG group and the port identifiers of physical ports belonging to the LAG group in a LAG group management table 471 (see FIG. 22), which will be described below.
The port identifier allocated to the LAG group indicates a port identifier indicating the virtual port, but it can be processed similar to a port identifier indicating the physical port in a processor of transferring an Ethernet frame in the Ethernet switch.
When the virtual port is set, a technique for preventing a broadcast storm in the LAG and a technique for determining a frame destination are applied to the physical ports belonging to the LAG group.
The term “broadcast storm” means a state in which the communication band of a network is overwhelmed due to continuous transfer of broadcast frames between the Ethernet switches connected to each other by a plurality of links, which results in unstable communication conditions over the entire network. Since the structure in which the Ethernet switches are connected to each other by a plurality of links is called a loop structure, broadcast frames transferred from one Ethernet switch to another Ethernet switch continuously return to a source Ethernet switch, which causes the broadcast storm.
In the technique for preventing the broadcast storm problem in the LAG, the Ethernet frame input to a physical port belonging to a LAG group is not transmitted from another physical port belonging to the LAG group, thereby preventing the broadcast storm.
In the technique for determining a frame destination, when a port (output port) transmitting the Ethernet frame is a virtual port, the Ethernet frame is transmitted to one of the physical ports connected to the link that is not out of order, among the physical ports belonging to a LAG group corresponding to the virtual port. As a result, even when a link failure occurs, it is possible to continuously perform communication, and thus improve the reliability of communication.
Further, according to the technique for determining a frame destination, the Ethernet frames are dispersed to a plurality of links that are not out of order for transmission, which makes it possible to improve the reliability of communication and expand a communication band between the Ethernet switches. For example, a load balancing algorithm has been known which determines an output port for Ethernet frames on the basis of the process result obtained from some or all of the parameters, such as a VLAN (Virtual Local Area Network) identifier, a source MAC address, and a destination MAC address stored in a header field of the Ethernet frame. The technique for determining a frame destination using the load balancing algorithm when Ethernet frames are dispersed to a plurality of links that are not out of order has been applied to most of the current Ethernet frame communication systems on the market.
Next, the operation of the LAG will be described with reference to the drawings. FIGS. 16A to 16C are diagrams illustrating examples of the network to which the LAG is applied.
In the network shown in FIG. 16A, a node 100, a node 200, and a node 300 are Ethernet switches. Two links between the node 100 and the node 200 are virtualized to one virtual link by the LAG. In the network shown in FIG. 16A, ports P1 and P2 of the node 100 are registered in the same LAG group, and a port identifier VP1 is allocated to the LAG group. Similarly, ports P1 and P2 of the node 200 are registered in the same LAG group, and a port identifier VP1 is allocated to the LAG group. Since the node 100 and the node 200 are independent nodes, the LAG group of the node 100 is different from that of the node 200. Therefore, according to the structure in which two links between the node 100 and the node 200 are virtualized to one virtual link, even when one of the two physical links between the nodes 100 and 200 is disconnected, it is possible to continuously perform communication between the nodes 100 and 200 using the other physical link.
However, since only one physical link is connected between the node 100 and the node 300, no LAG is set to the port P3 of the node 100 and the port P1 of the node 300 that are connected by the physical link.
In FIG. 16A, link redundancy is achieved between the node 100 and the node 200 since the node 200 plays an important part in communication. In such a network configuration, for example, the node 200 may be a server, the node 300 may be a client terminal of the node 100, and the node 100 may be a switch connecting the server and the terminal. Alternatively, the node 200 may be a router, and the node 200 may also serve as a gateway connecting another network (not shown) and the node 100.
Each of the ports P1, P2, and P3 includes an input port that receives Ethernet frames and an output port that transmits Ethernet frames. It is assumed that one port including the input port and the output port in one node is connected to one port including the input port and the output port in another node by one link. For example, the input port and the output port of the port P1 of the node 100 are connected to the output port and the input port of the port P1 of the node 200 by one link, respectively.
Next, the network shown in FIG. 16B will be described. In the network shown in 16B, node redundancy is applied to the node 200 in the network shown in FIG. 16A. Since node redundancy technique is applied to the node 200 and a node 210 shown in FIG. 16B, the nodes 200 and 201 operate just like one physical node. The node 200 and the node 210 are redundantly configured such that the port P1 of the node 200 and the port P1 of the node 210 are registered in the same LAG group, and a port identifier VP1 is allocated to the LAG group. However, the necessity for registering the port P1 of the node 200 and the port P1 of the node 210 in the same LAG group depends on the kind of node redundancy technique.
As shown in FIG. 16B, any node redundancy technique may be used as long as it can connect a virtual node (the node 200 and the node 210) to another Ethernet switch (the node 100) by LAG.
When the ports P1 and P2 of the node 100 shown in FIG. 16B are registered in the same LAG group and the port identifier VP1 is allocated to the LAG group, the link between the node 100 and a virtual node composed of the node 200 and the node 210 is virtualized to one physical link. Therefore, the node 100 recognizes that the network configuration shown in FIG. 16B is completely identical to the network configuration shown in 16A.
In the network shown in FIG. 16A, when one of two links between the node 100 and the node 200 is disconnected, it is possible to continuously perform communication. However, when the node 200 is out of order, it is impossible to perform communication. Meanwhile, in the network shown in FIG. 16B, the node 100 can continuously perform communication even when the node 200 is out of order and the link between the node 200 and the node 100 is disconnected. Similarly, the node 100 can continuously perform communication even when the node 210 is out of order and the link between the node 210 and the node 100 is disconnected.
According to the technique for preventing the broadcast storm in the LAG, in the configuration shown in FIG. 16B, the Ethernet frame transmitted from the node 200 to the node 100 is not transferred to the node 210. Similarly, the Ethernet frame transmitted from the node 210 to the node 100 is not transferred to the node 200. Therefore, it is possible to prevent the broadcast storm.
Further, according to the technique for determining a frame destination in the LAG, the ports that are connected to the disconnected link, or the ports connected to the node that is out of order are not selected as output ports for Ethernet frames. Therefore, it is possible to continuously perform communication even when a link failure occurs. When no failure occurs, the node 100 disperses traffic to the node 200 and the node 210. Therefore, it is also possible to expand the communication band.
As in the network configuration shown in FIG. 16B, the use of both the node redundancy technique and the link redundancy technique makes it possible to improve the reliability of a network.
Next, the network shown in FIG. 16C will be described. In the network shown in FIG. 16C, the link between the node 100 and the node 200 and the link between the node 100 and the node 210 in the network shown in FIG. 16B are redundantly configured. This structure can further improve the reliability of a network.
In the network shown in FIG. 16C, the ports P1 and P2 of the node 200 and the ports P1 and P2 of the node 210 are registered in the same LAG group, and a port identifier VP1 is allocated to the LAG group. As described above, the setting of the LAG in the node 200 and the node 210 depends on the kind of node redundancy technique. Therefore, the setting of the LAG in the node 200 and the node 210 is just illustrative, but the ports P1 and P2 of the node 200 and the ports P1 and P2 of the node 210 do not necessarily belong to the same LAG group.
Among the physical ports P1 to P4 of the node 100, the physical ports P1 and P2 are connected to a link between the node 100 and the node 200, and the physical ports P3 and P4 are connected to a link between the node 100 and the node 210. The physical ports P1 to P4 of the node 100 are registered in the same LAG group, and a port identifier VP1 is allocated to the LAG group.
In this way, the node 100 is connected to both the node 200 and the node 210 by redundant links. Therefore, the network configuration shown in FIG. 16C has higher reliability than that shown in FIG. 16B.
Next, as a technique related to the invention, an example of the configuration of a general node used in the network shown in FIG. 16C will be described. FIG. 17 is a block diagram illustrating the configuration of the general node. The node 100 shown in FIG. 16C will be described below as an example. As shown in FIG. 17, the general node 100 includes input ports 400-1 to 400-5, a frame switch 410, output ports 420-1 to 420-5, an FDB storage unit 430, an output port management table storage unit 440, a broadcast frame transmission permission port management table storage unit 450, a port management table storage unit 460, a LAG group management table storage unit 470, a LAG management unit 480, a port state management unit 490, a port state management table storage unit 500, and a setup interface unit 510.
The input ports 400-1 to 400-5 of the node 100 are receiver-side ports in the ports P1 to P5 of the node 100 shown in FIG. 16C. That is, the input ports 400-1 to 400-5 of the node 100 receive Ethernet frames transmitted from adjacent nodes 200, 210, or 300. Specifically, the input port 400-1 of the node 100 receives Ethernet frames transmitted from a port P1 of the node 200. The input port 400-2 of the node 100 receives Ethernet frames transmitted from a port P2 of the node 200. The input port 400-3 of the node 100 receives Ethernet frames transmitted from a port P1 of the node 210. The input port 400-4 of the node 100 receives Ethernet frames transmitted from a port P2 of the node 210. The input port 400-5 of the node 100 receives Ethernet frames transmitted from a port P1 of the node 300.
Similarly, the output ports 420-1 to 420-5 of the node 100 are transmitter-side ports in the ports P1 to P5 of the node 100 shown in FIG. 16C. That is, the output ports 420-1 to 420-5 of the node 100 transmit Ethernet frames to adjacent nodes 200, 210, or 300. Specifically, the output port 420-1 of the node 100 transmits Ethernet frames to the port P1 of the node 200. The output port 420-2 of the node 100 transmits Ethernet frames to the port P2 of the node 200. The output port 420-3 of the node 100 transmits Ethernet frames to the port P1 of the node 210. The output port 420-4 of the node 100 transmits Ethernet frames to the port P2 of the node 210. The output port 420-5 of the node 100 transmits Ethernet frames to the port P1 of the node 300.
The frame switch 410 of the node 100 determines an output port that transmits the received Ethernet frame, on the basis of the content of an Ethernet frame header of the Ethernet frame received from the node 200, 210, or 300, and information registered in databases that are stored in the FDB storage unit 430, the broadcast frame transmission permission port management table storage unit 450, and the port management table storage unit 460, and then transmits the Ethernet frames from the determined output port.
The FDB storage unit 430 of the node 100 is a storage device that stores an FDB (Forwarding DataBase). The FDB is a database that registers destination information of an Ethernet frame and the port identifier of a port transmitting the Ethernet frame such that they are associated with each other. The port identifier of the port transmitting the Ethernet frame is not limited to the port identifier of a physical port, but it may be the port identifier of a virtual port. The port identifier of the port transmitting the Ethernet frame may be called output information. The FDB stored in the FDB storage unit 430 is updated or referred to by the frame switch 410 of the node 100.
FIG. 18 is a diagram illustrating an example of the FDB stored in the FDB storage unit 430 of the node 100. As the destination information of the Ethernet frame, a destination node identifier, that is, a destination MAC address is registered in an FDB 431 stored in the FDB storage unit 430 of the node 100. In addition, the port identifiers of physical ports or the port identifiers of virtual ports provided in a node (in this case, the node 100) are registered in the FDB as output information corresponding to a destination node identifier (destination MAC address). For example, a first entry of the FDB 431 of the node 100 shown in FIG. 18 means that, when the destination MAC address of the received Ethernet frame is the MAC address of the node 200, an output port transmitting the Ethernet frame is a port VP1.
The node viewed from a certain component means a node including the component itself.
The operation of the Ethernet switch registering the correspondence between the destination information and the output information of the Ethernet frame in the FDB is generally called MAC address learning. The operation of the MAC address learning will be described below.
The output port management table storage unit 440 of the node 100 is a storage device that stores an output port management table. The output port management table is a database in which output information is associated with physical ports P1 to P5 provided in a node (in this case, the node 100), and indicates output information to be registered in the FDB 431 when the MAC address learning is performed on the basis of the Ethernet frames received from the physical ports P1 to P5 provided in the node. The frame switch 410 refers to the output port management table during the MAC address learning, thereby searching output information to be registered in the FDB 431.
FIG. 19 is a diagram illustrating an example of the output port management table stored in the output port management table storage unit 440 of the node 100. In an output port management table 441 stored in the output port management table storage unit 440, port identifiers to be registered in the FDB 431 as output information during the MAC address learning are registered to the port identifiers (in FIG. 19, port identifiers P1 to P5) of the physical ports receiving Ethernet frames. For example, a first entry of the output port management table 441 of the node 100 shown in FIG. 19 means that, when the frame switch 410 of the node 100 performs the MAC address learning using the Ethernet frame received by the port P1, a source MAC address stored in the Ethernet frame is registered in a destination information field of the FDB 431 stored in the FDB storage unit 430 of the node and a port identifier VP1 is registered in the output information field.
In addition, the port identifiers of the physical ports provided in the node (in this case, the node 100) are registered as initial values of the output port management table 441. Therefore, when the frame switch 410 performs the MAC address learning immediately after the node 100 starts, the port identifier of the physical port receiving the Ethernet frame is registered as output information in the FDB 431 of the node 100.
After an initial state, the LAG management unit 480 updates the output port management table 441. The update of the output port management table 441 will be described below.
The broadcast frame transmission permission port management table storage unit 450 of the node 100 is a storage device that stores a broadcast frame transmission permission port management table. The broadcast frame transmission permission port management table is a database in which the physical ports provided in the node are associated with all the ports that permit the transmission of the broadcast frames received by the physical ports. When transmitting the received broadcast frame to another node, the frame switch 410 refers to the broadcast frame transmission permission port management table.
FIG. 20 is a diagram illustrating an example of the broadcast frame transmission permission port management table stored in the broadcast frame transmission permission port management table storage unit 450 of the node 100. As shown in FIG. 20, in a broadcast frame transmission permission port management table 451, the port identifiers (in FIG. 20, port identifiers P1 to P5) of the physical ports receiving broadcast frames are registered so as to be associated with the port identifiers of all of the physical ports or the virtual ports that permit the transmission of the broadcast frames. For example, a first entry of the broadcast frame transmission permission port management table 451 of the node 100 shown in FIG. 20 means that, when the port P1 receives a broadcast frame, only the port P5 is permitted to transmit the broadcast frame.
The broadcast frame transmission permission port management table 451 is updated by the LAG management unit 480 of the node. The update process will be described below.
The port management table storage unit 460 of the node 100 is a storage device that stores a port management table. The port management table is a database in which the port identifiers of physical ports capable of transmitting/receiving Ethernet frames are registered for each virtual port allocated to a LAG group of a node (here, the node 100), and for each physical port that does not belong to any LAG group.
The port management table is updated by the LAG management unit 480 of the node. The operation of the LAG management unit 480 updating the port management table will be described below. The frame switch 410 refers to the port management table when transmitting the received frame to another node.
In the port management table stored in the port management table storage unit 460, the port identifiers of the physical ports capable of transmitting/receiving Ethernet frames among the physical ports belonging to each virtual port are registered for the port identifier of each of the virtual ports set in the node. When all the physical ports belonging to the virtual ports cannot transmit or receive Ethernet frames, a value (for example, a NULL value) indicating that there is no physical port capable of transmitting or receiving Ethernet frames is registered in correspondence with the port identifier of the virtual port.
Further, in the port management table, among the physical ports provided in the node (here, the node 100), the port identifiers of the physical ports that do not belong to any LAG group set in the node are registered so as to be associated to their own port identifiers or a value (for example, a NULL value) indicating that there is no physical port capable of transmitting/receiving Ethernet frames. When the physical ports that do not belong to any LAG group set in the node are capable of transmitting or receiving Ethernet frames, the port identifiers of the physical ports are registered. When the physical ports are incapable of transmitting or receiving Ethernet frames, the value (for example, a NULL value) indicating that there is no physical port capable of transmitting/receiving Ethernet frames is registered.
FIG. 21 is a diagram illustrating an example of the port management table stored in the port management table storage unit 460 of the node 100. A first entry of the port management table 461 shown in FIG. 21 means that, among the physical ports belonging to the virtual port VP1, the ports P1, P3, and P4 are capable of transmitting or receiving Ethernet frames. In addition, a second entry of the port management table 461 shown in FIG. 21 means that the physical port P5 of the node is capable of transmitting or receiving Ethernet frames.
The LAG group management table storage unit 470 of the node 100 is a storage device that stores a LAG group management table. The LAG group management table is a database in which LAG groups set in the node, the port identifiers of the virtual ports allocated to the LAG groups, and the physical ports belonging to the LAG groups are associated with one another. For example, in the database, the group identifiers of the LAG groups set in the node, the port identifiers of the virtual ports allocated to the LAG groups, and the port identifiers of the physical ports belonging to the LAG groups are associated with each other.
The setup interface unit 510 is a user interface that allows a node administrator to update the LAG group management table (registration or modification of data). The setup interface unit 510 is operated by the administrator and updates the LAG group management table in response to instructions from the administrator. That is, the administrator operates the setup interface unit 510 to register data in the LAG group management table. When the LAG group management table is updated, the LAG management unit 480 refers to the LAG group management table to update the output port management table 441, the broadcast frame transmission permission port management table 451, and the port management table 461.
The port identifier of the virtual port allocated to a LAG group may be registered so as not to be identical to the port identifier of the virtual port allocated to another LAG group set in the node and the port identifiers of the physical ports provided in the node. In addition, the same physical port cannot be registered in a plurality of LAG groups.
In addition, each processor in the node is configured so as to determine whether the port identifier is of a physical port or a virtual port. In the example shown in the specification, the physical port includes a port identifier starting from “p”, and the virtual port includes a port identifier starting from “VP”. In this way, it is possible to discriminate the port identifier of the physical port from the port identifier of the virtual port.
FIG. 22 is a diagram illustrating an example of the LAG group management table stored in the LAG group management table storage unit 470 of the node 100. As shown in FIG. 22, in the LAG group management table 471, the group identifier of a LAG group, the port identifier of the virtual port allocated to the LAG group, and the port identifiers of one or more physical ports belonging to the LAG group are registered as to be associated with each other. A first entry of the LAG group management table 471 shown in FIG. 22 means that the port identifier VP1 of the virtual port is allocated to a LAG group LG1 and physical ports P1, P2, P3, and P4 belong to the LAG group.
The LAG management unit 480 of the node 100 updates the output management table 441 and the broadcast frame transmission permission port management table 451 with reference to the LAG group management table 471 stored in the LAG group management table storage unit 470 of the node. In addition, the LAG management unit 480 updates the port management table 461 with reference to the LAG group management table 471 and the port state management table stored in the port state management table storage unit 500. The port state management table will be described below with reference to FIG. 23.
The port state management unit 490 of the node 100 determines the states of the ports P1 to P5 of the node 100, on the basis of whether the input ports 400-1 to 400-5 of the node 100 are capable of receiving Ethernet frames and whether the output ports 420-1 to 420-5 of the node 100 are capable of transmitting Ethernet frames, and registers the determination results in the port state management table stored in the port state management table storage unit 500 of the node 100.
Further, when the port state management table of the node is updated, the port state management unit 490 notifies the LAG management unit 480 of the node that the port state management table has been updated.
The port state management table storage unit 500 of the node 100 is a storage device that stores the port state management table. The port state management table is a database that manages the state of each physical port in the node. Specifically, the port state management table is a database in which the port identifier of each physical port in the node is associated with information indicating whether the physical port is available or unavailable. The “available physical port” means a physical port that is capable of transmitting/receiving data, and the “unavailable physical port” means a physical port that is incapable of transmitting/receiving data.
The port state management unit 490 updates the available or unavailable state of each physical port in the port state management table. In addition, the LAG management unit 480 refers to the port state management table to update the output management table 441, the broadcast frame transmission permission port management table 451, and the port management table 461.
FIG. 23 is a diagram illustrating an example of the port state management table stored in the port state management table storage unit 500 of the node 100. As shown in FIG. 23, the port identifiers of the physical ports provided in the node and the states of the physical ports are registered in the port state management table 501 stored in the port state management table storage unit 500. When the physical ports are capable of transmitting/receiving Ethernet frames, the physical ports are registered as an “available state”, but when the physical ports are incapable of transmitting/receiving Ethernet frames, the physical ports are registered as an “unavailable state”. For example, a first entry of the port state management table 501 shown in FIG. 23 means that the port state of the physical port P1 is available and thus the physical port P1 is capable of transmitting/receiving Ethernet frames. On the other hand, a second entry of the port state management table 501 shown in FIG. 23 means that the port state of the physical port P2 is unavailable and thus the physical port P2 is incapable of transmitting/receiving Ethernet frames.
Next, the operation of the general node (see FIG. 17) will be described below. Hereinafter, the operation of the LAG management unit 480 of the general node 100 shown in FIG. 16C will be described.
When the administrator of the node 100 uses the setup interface unit 510 to update the LAG group management table 471 (see FIG. 22), the LAG management unit 480 updates the output port management table 441, the broadcast frame transmission permission port management table 451, and the port management table 461 of the node, on the basis of the content of the updated LAG group management table 471 stored in the LAG group management table storage unit 470 of the node (here, the node 100). Next, a process of updating each table will be described.
First, a process of updating the output port management table 441 stored in the output port management table storage unit 440 will be described. It is assumed that the physical ports provided in the node are registered as physical ports that to belong to LAG groups in the updated LAG group management table 471. That is, it is assumed that the port identifiers of the physical ports provided in the node are registered in the LAG group management table 471 so as to be associated with LAG group identifiers and the port identifiers of the virtual ports allocated to the LAG groups. In this case, the LAG management unit 480 registers the port identifier of the virtual port allocated to the LAG group, as the port identifier to be registered as output information in the FDB, in the output port management table 441 (see FIG. 19) so as to be associated with the port identifiers of the physical ports. In addition, the LAG management unit 480 registers the port identifiers of the physical ports that do not belong to any LAG group among the physical ports provided in the node, as the port identifiers to be registered as output information in the FDB, in the output port management table 441 (see FIG. 19). That is, for the physical ports whose identifiers are not registered in the LAG group management table 471 among the physical ports provided in the node, the LAG management unit 480 registers the port identifiers of the physical ports in the output port management table 441 so as to be associated with their own port identifiers.
For example, it is assumed that the LAG group management table 471 is updated as shown in FIG. 22. In this case, the physical ports P1 to P4 of the node are associated with the port identifier VP1 of the virtual port. Therefore, the LAG management unit 480 registers the port identifier VP1 of the virtual port in the output port management table 441 so as to be associated with each of the port identifiers P1 to P4 of the physical ports. FIG. 19 shows the output port management table in this state. The physical port P5 among the physical ports in the node is not registered in the LAG group management table 471. Therefore, as shown in FIG. 19, the LAG management unit 480 registers the port identifier P5 of the physical port so as to be associated with its own port identifier P5.
When the LAG group management table 471 (see FIG. 22) is updated, the LAG management unit 480 also updates the broadcast frame transmission permission port management table 451 (see FIG. 20) as follows. The LAG management unit 480 determines whether each of the physical ports provided in the node (here, the node 100) is registered as physical ports that belong to the LAG group in the updated LAG group management table 471. Then, the LAG management unit 480 associates the physical ports that are registered in the LAG group management table 471 as physical ports that belong to the LAG groups with their own port identifiers in the broadcast frame transmission permission port management table 451. In addition, the LAG management unit 480 registers the port identifiers of all the physical ports that do not belong to any LAG group, among the port identifiers of the virtual ports allocated to all the LAG groups except for the LAG group including the physical ports and the physical ports provided in the node.
Meanwhile, for a physical port (referred to as a physical port A) that does not belong to any LAG group and is not registered in the LAG group management table 471, the LAG management unit 480 registers, in the broadcast frame transmission permission port management table 451, the port identifiers of the virtual ports allocated to each LAG group and the port identifiers of all the physical ports except for the physical port A among all the physical ports that do not belong to any LAG group so as to be associated with the port identifier of the physical port A.
For example, it is assumed that the LAG group management table 471 is updated as shown in FIG. 22. In this case, the LAG management unit 480 determines that the physical port P1 belongs to a LAG group LG1 and is registered in the LAG group management table 471 with reference to the LAG group management table 471. Therefore, the LAG management unit 480 registers the physical port P1 in the broadcast frame transmission permission port management table 451 so as to be associated with the port identifiers P5 of all the physical ports that do not belong to any LAG group. In this example, since LAG groups other than the LAG group including the physical port P1 are not set, there are no LAG groups other than the LAG group including the physical port P1. Therefore, the port identifiers of the virtual ports allocated to these LAG groups are not registered, but only P5 is registered for P1. FIG. 20 shows the broadcast frame transmission permission port management table in this state. Similarly, only P5 is associated with P2 to P4. In addition, the LAG management unit 480 determines that P5 does not belong to any LAG group with reference to the LAG group management table 471. Therefore, the LAG management unit 480 registers the port identifier of the virtual port (in this example, VP1) allocated to each LAG group in the broadcast frame transmission permission port management table 451 so as to be associated with P5 (see FIG. 20). In addition, since only the physical port P5 does not belong to any LAG group in this example, the port identifier of the physical port is not registered so as to be associated with P5. As described above, when the LAG group management table 471 is updated as shown in FIG. 22, the broadcast frame transmission permission port management table 451 is set in the state shown in FIG. 20 by the LAG management unit 480.
Furthermore, the LAG management unit 480 of the node 100 updates the port management table 461 stored in the port management table storage unit 460 with reference to the LAG group management table 471 and the port state management table 501 (see FIG. 23) stored in the port state management table storage unit 500. That is, the LAG management unit 480 searches the port identifier of the virtual port allocated to each LAG group set in the node, with reference to the LAG group management table 471. Then, the LAG management unit 480 determines whether one or more physical ports (physical ports belonging to the LAG group) that are associated with the port identifier of each of the searched virtual ports are available or unavailable with reference to the port state management table 501, and selects the port identifiers of all the physical ports that are determined as available. The LAG management unit 480 registers, in the port management table 461, the port identifiers of the virtual ports searched from the LAG group management table 471 and the port identifiers of all the physical ports that are determined as available among the physical ports associated with the port identifier of each virtual port such that they are associated with each other. In this case, when the port identifiers of the physical ports that are determined as unavailable are registered in the port management table 461 so as to be associated with the port identifier of each of the searched virtual ports, the LAG management unit 480 deletes the port identifiers of the physical ports that are determined as unavailable from the port management table 461. When there is no physical port that is determined as available, the LAG management unit 480 registers the port identifiers of the virtual ports and a value indicating that there is no physical port capable of transmitting/receiving data in the port management table 461 such that they are associated with each other. In the following description, a NULL value is used as the value indicating that there is no physical port capable of transmitting/receiving data.
The LAG management unit 480 determines whether the port identifiers of the physical ports that do not belong to any LAG group (that is, the port identifiers of the physical ports that are not registered in the LAG group management table 471) among the physical ports in the node are available or unavailable with reference to the port state management table 501. When it is determined that that physical ports are available, the LAG management unit 480 registers the port identifiers of the physical ports in the port management table 461 so as to be associated with their own port identifiers. On the other hand, when it is determined that that physical ports are unavailable, the LAG management unit 480 registers the port identifiers of the physical ports in the port management table 461 so as to be associated with the NULL value.
FIG. 21 shows an example of the port management table 461 when the LAG group management table 471 is updated as shown in FIG. 22 and the port state management table 501 is updated as shown in FIG. 23. Among the physical ports P1 to P4 corresponding to the port identifier VP1 of the virtual port (see FIG. 22), the physical ports P1, P3, and P4 are available (see FIG. 23). Therefore, in the port management table 461, P1, P3, and P4 are associated with VP1 (see FIG. 21). In addition, since the physical port P5 that does not belong to any LAG group is available (see FIG. 23), the physical port P5 is associated with its own port identifier P5 in the port management table 461 (see FIG. 21).
The LAG management unit 480 updates the port management table 461 of the node when the LAG group management table 471 of the node is updated as well as when notified of the update of the port state management table 501 of the node from the port state management unit 490 of the node. In addition, the LAG management unit 480 may check whether the port state management table 501 stored in the port state management table storage unit 500 of the node is updated at a predetermined time interval, and update the port management table 461 when it is checked that the port state management table 501 has been updated.
Next, the frame transfer operation of the general node shown in FIG. 17 will be described. FIG. 24 is a flowchart illustrating the frame transfer operation of the general node. In the following description, in the network shown in FIG. 16C, when the port P5 of the node 100 receives the Ethernet frame transmitted from the port P1 of the node 300 and then the node 100 transmits the Ethernet frame to the node 200 or the node 210, the operation of the general node transferring Ethernet frames will be described.
When receiving the Ethernet frame transmitted from the port P1 of the node 300, the input port 400-5 of the node 100 transmits the Ethernet frame to the frame switch 410 of the node. The frame switch 410 determines whether the received Ethernet frame is a unicast frame (Step S1).
When it is determined that the received Ethernet frame is a unicast frame (Yes in Step S1), the frame switch 410 searches the FDB 431 stored in the FDB storage unit 430 of the node, using a destination MAC address stored in a header of the Ethernet frame as a search key, to acquire output information (Step S2). That is, the frame switch 410 acquires the port identifier of a port transmitting the Ethernet frame from the FDB 431.
When the acquisition of the output information fails in Step S2 (No in Step S3), the frame switch 410 searches the broadcast frame transmission permission port management table 451 stored in the broadcast frame transmission permission port management table storage unit 450 using the port identifier of a receiving port (in this case, P5) that receives the Ethernet frame as a search key. Then, the frame switch 410 acquires as output information all the port identifiers corresponding to the port identifier of the receiving port that receives the Ethernet frame (Step S9). Assuming that the broadcast frame transmission permission port management table 451 shown in FIG. 20 is generated, the frame switch 410 acquires VP1 corresponding to P5. Then, the frame switch 410 performs the process after Step S4 using the port identifier acquired in Step 59 as output information. When a plurality of port identifiers are acquired as the output information in Step S9, Steps S4, S5, S6, and S11 are performed on the port identifiers.
The frame switch 410 searches the port management table 461 stored in the port management table storage unit 460 of the node, using the output information acquired by searching (output information acquired in Step S9 or Step S2) as a search key, to acquire a port identifier corresponding to the output information (Step S4). In Step S4, the port identifier of the physical port or the NULL value is acquired from the port management table 461.
Subsequently, the frame switch 410 determines whether the port identifier acquired in Step S4 is of the physical port (Step S5). When a NULL value is acquired as data corresponding to output information in Step S4, the frame switch 410 determines that the port identifier is not of the physical port (No in Step S5), and discards the received Ethernet frame (Step S11). Then, the process proceeds to Step S7. If the data acquired in Step S4 is not the NULL value, the frame switch 410 determines that the acquired port identifier is of the physical port (Yes in Step S5), and the process proceeds to Step S6.
The port identifiers of one or more physical ports may be acquired in Step S4. In Step S6, the frame switch 410 selects one of the port identifiers acquired in Step S4, and transmits the received Ethernet frame from a physical port corresponding to the selected port identifier (Step S6).
When one port identifier is acquired from the port management table 461 by searching in Step S4, the frame switch 410 transmits the Ethernet frame from the output port of a physical port corresponding to the port identifier.
On the other hand, if a plurality of port identifiers are acquired, the frame switch 410 selects one of the plurality of port identifiers, and transmits the Ethernet frame from the output port of a physical port corresponding to the selected port identifier in Step S6. As a method of selecting one of the plurality of port identifiers, the following can be used: some or all of the information items stored in the received Ethernet frame are used as parameters, and one of the port identifiers corresponding to the parameters is selected. The information stored in the Ethernet frame means, for example, the content of a header of the Ethernet frame or information stored in a payload of the Ethernet frame. Therefore, for example, the frame switch 410 may use a destination MAC address, a source MAC address, a VLAN identifier, and priority stored in the Ethernet frame as parameters, and select one of the port identifiers corresponding to the parameters. Such a method of determining a port for outputting the Ethernet frame has been applied to the Ethernet switches on the market. A method of selecting one of a plurality of port identifiers (that is, a method of determining one port among the output ports of the Ethernet frame) is not limited to the above.
In this example, it is assumed that all the physical ports P1 to P5 of the node 100 are available. In this case, in the port management table 461, the port identifiers of the physical ports P1 to P4 are registered so as to be associated with VP1. In Step S4, the frame switch 410 acquires the port identifiers of the physical ports P1 to P4 corresponding to VP1 acquired in Step S9. In Step S6, the frame switch 410 selects one of the port identifiers of the physical ports P1 to P4, and transmits the Ethernet frame from the physical port corresponding to the selected port identifier.
After the Ethernet frame is transmitted in Step S6, or after the Ethernet frame is discarded in Step S11, MAC address learning is performed (Steps S7 and S8). Before describing Steps S7 and S8, the operation of the frame switch searching the FDB 431 using the destination MAC address as a search key to acquire output information in Step S2 (Yes in Step S3) will be described. When the frame switch searches the FDB 431 using the destination MAC address as a search key to acquire output information in Step S2, the process proceeds to Step S4. The processes in Steps S4, S5, S6, and S11 are the same as described above.
In addition, when it is determined in Step S1 that the received Ethernet frame is not a unicast frame, that is, when the received Ethernet frame is a broadcast frame (No in Step S1), the process proceeds to Step S9. After proceeding to Step S9, the processes in Steps S9, S4, S5, S6, and S11 are the same as described above.
As described above, after the Ethernet frame is transmitted in Step S6, or after the Ethernet frame is discarded in Step S11, MAC address learning is performed (Steps S7 and S8). Next, the MAC address learning will be described.
After transmitting the Ethernet frame in Step S6, or after discarding the Ethernet frame in Step S11, the frame switch 410 searches the output port management table 441 stored in the output port management table storage unit 440 of the node, using the port identifier (in this example, P5) of the port receiving the Ethernet frame as a search key, to acquire a port identifier corresponding to the search key (Step S7). The port identifier acquired in Step S7 is to be registered in the FDB 431 as output information. It is assumed that the output port management table 441 shown in FIG. 19 is made. In this case, P5 is acquired as a port identifier corresponding to the search key (in this example, P5).
Subsequent to Step S7, the frame switch 410 registers the source MAC address of the received Ethernet frame as destination information in the FDB 431, and registers the port identifier acquired in Step S7 as output information corresponding to the destination information in the FDB 431 (Step S8).
The operation of the node 100 transferring Ethernet frames from the node 300 to the node 200 or the node 210 has been described above. The operation of the node 100 transferring Ethernet frames from the node 200 or the node 210 to the node 300 is similar to the above.
Next, the failure recovery operation of the general node when a link is disconnected will be described. As an example, the operation of the node 100 when the link between the port P2 of the node 100 and the port P2 of the node 200 (see FIG. 16C) is disconnected will be described below.
When a link connected to the node 100 is disconnected, the port state management unit 490 of the node 100 updates the states of the ports connected to the disconnected link from available to unavailable in the port state management table 501 stored in the port state management table storage unit 500 of the node. When the link connected to the port P2 is disconnected as in this example, the port state management unit 490 updates the state of the port P2 from available to unavailable in the port state management table 501. In addition, the port state management unit 490 updates the port state management table 501, and notifies the LAG management unit 480 of the node that the port state management table 501 has been updated.
The LAG management unit 480 receiving the notification from the port state management unit 490 of the node updates the port management table 461. The update process of the port management table 461 is the same as described above. In this example, the LAG management unit 480 deletes the port identifier of the port P2 from the port management table 461.
In this way, the frame switch 410 of the node 100 does not select the port P2 as a physical port for transmitting the Ethernet frame. That is, when transmitting Ethernet frames from a port belonging to the LAG group including the port P2, the frame switch 410 of the node 100 selects one of the ports P1, P3, and P4 other than the port P2, and transmits the Ethernet frame from the selected port.
Therefore, even when the link between the port P2 of the node 100 and the port P2 of the node 200 is disconnected, the node 100 can continuously communicate with the nodes 200 and 210. Even when another link between the node 100 and the node 200 is disconnected, or even when the link between the node 100 and the node 210 is disconnected, the same process as described above is performed. When any other link is disconnected, the same process as described above is performed.
On the contrary, it is assumed that the link failure between the port P2 of the node 100 and the port P2 of the node 200 is recovered. In this case, the port state management unit 490 of the node 100 updates the state of the ports connected to the recovered link from unavailable to available in the port state management table 501 stored in the port state management table storage unit 500 of the node. As in this example, when the link connected to the port P2 is recovered, the port state management unit 490 updates the state of the port P2 from unavailable to available in the port state management table 501. In addition, the port state management unit 490 updates the port state management table 501 and notifies the LAG management unit 480 of the node that the port state management table 501 has been updated.
The LAG management unit 480 receiving the notification from the port state management unit 490 of the node updates the port management table 461. The update process of the port management table 461 is the same as described above. In this example, the LAG management unit 480 adds the port identifier of the port P2 to the virtual port VP1 allocated to the LAG group including the port P2 in the port management table 461 of the node.
In this way, the frame switch 410 of the node 100 can transmit the Ethernet frame from the port P2 again, and thus the node 100 can return to the state before the link failure occurs.
Next, the failure recovery operation of the general node when a node failure occurs will be described.
Specifically, the failure recovery operation of a general node will be described below with the example that the failure recovery operation of the node 100 when the node 200 shown in FIG. 16C is out of order will be described below.
When the node 200 is out of order, the port state management unit 490 of the node 100 recognizes that both the ports P1 and P2 of the node 100 are changed to a state incapable of transmitting/receiving Ethernet frames. This state is similar to when the link failure occurs except that a plurality of ports are incapable of transmitting/receiving the Ethernet frames. Therefore, the operation of the node 100 is similar to that when the link is disconnected except for the number of ports whose state is updated from available to unavailable in the port state management table 501. As the result of this operation, even when either of the redundant nodes 200 and 210 is out of order, the node 100 can continuously communicate with the other normal node.
In addition, the operation of the node when the node 200 recovers from the failure is the same as that when the link recovers from the failure. That is, when the link recovers from the failure, one port changes its state from unavailable to available. However, when the node 200 recovers from the failure, two ports change their states from unavailable to available in the node 100. As such, the operation of the node 100 (specifically, the operations of the port state management unit 490 and the LAG management unit 480 of the node 100) is similar to the link failure recovery operation except that the number of ports whose state is changed from unavailable to available is increased.
Patent Document 1 (Japanese Unexamined Patent Application Publication No. 2002-232427) discloses a band control apparatus in which some of the physical links trunked to a logic link are grouped to a sub-logic link and the sub-logic link is allocated only for traffic that meets specific conditions. Patent Document 1 also discloses a process of allocating the number of physical links corresponding to the amount of traffic meeting the specific conditions to the sub-logic link.
The general node to which LAG is applied, which is shown in FIG. 17, has the following problems. In the network shown in FIG. 16C, for example, when the link between the port P1 of the node 100 and the port P1 of the node 200 is disconnected, traffic transmitted from the port P1 of the node 100 to the port P1 of the node 200 is transmitted from any one of the ports P2 to P4 of the node 100 to the node 200 or the node 210. In this state, even though the port P2 of the node 100 can communicate with the node 200, the node 100 may transmit the traffic, which has been transmitted from the port P1 of the node 100 to the node 200, from the port P3 or the port P4 of the node 100 to the node 210. When the node 100 transmits the traffic, which has been transmitted from the port P1 of the node 100 to the node 200, to another node even though the port P2 of the node 100 can communicate with the node 200, the following problems arise.
For example, in the network shown in FIG. 16C, it is assumed that the node 200 and the node 210 are redundant Web servers. In this case, a traffic destination node is switched from the node 200 to the node 210, and the node 200 makes an established session unavailable. Therefore, the node 210 may reestablish the session, which results in a waste of the communication band of the network.
Further, for example, in the network shown in FIG. 160, it is assumed that the node 200 and the node 210 are redundant routers for connecting other networks (not shown) to the node 100. In this case, when an Ethernet frame transferred from the node 100 to a destination node (not shown) through the node 210 reaches the destination node earlier than another Ethernet frame that has been transferred from the node 100 to the destination node through the node 200, the destination node is unlikely to reconfigure data stored in the Ethernet frame.
Furthermore, a network configuration shown in FIG. 25 is also considered as an example of the network configuration. In the network configuration shown in FIG. 25, redundant nodes 110 and 120 configured by a node redundancy technique are provided between the node 100 and the node 200 and between the node 100 and the node 210, respectively. The node 110 and the node 200 are connected to each other by redundant links. Similarly, the node 120 and the node 210 are connected to each other by redundant links. The node 100 is connected to each of the nodes 110 and 120 by one link. In the network configuration shown in FIG. 25, for example, even when one of the links between the node 110 and the node 200 is disconnected, the path of traffic transmitted from the node 100 to the node 200 through the node 110 is not switched to a path from the node 100 to the node 210. That is, it is possible to solve the problem of the traffic communication path being switched due to the disconnection of one link.
However, since the network configuration shown in FIG. 25 is complicated, it requires high costs to construct the network. In addition, in the configuration shown in FIG. 25, since redundant links are not used between the node 100 and the node 110 and between the node 100 and the node 120, the reliability of the network is lowered.
The technique disclosed in Patent Document 1 in which some of the physical links trunked to a logic link are grouped to a sub-logic link, the sub-logic link is allocated only for traffic that meets specific conditions, and the number of physical links corresponding to the amount of traffic meeting the specific conditions is allocated to the sub-logic link cannot solve the problem of the traffic communication path being switched. For example, as shown in FIG. 26, it is assumed that the nodes 100 and 200 are connected to each other by redundant links 171 and 172 and the nodes 100 and 210 are connected to each other by redundant links 173 and 174. In addition, it is assumed that the technique disclosed in Patent Document 1 is applied to the network, the links 171 to 174 are logic links, and the links 171 and 172 are sub-logic links. In this case, when one of the links 171 and 172 is disconnected, either of the links 173 and 174 is allocated to the sub-logic link in order to guarantee the communication band of traffic of the sub-logic link. Then, even though the node 100 can communicate with the node 200, the node 100 transmits traffic to the node 210 and the communication path is switched.